Apache Tapestry ফ্রেমওয়ার্কে Ajax এবং JSON ব্যবহার করে ডাইনামিক ডেটা লোড করার প্রক্রিয়া খুবই সহজ এবং কার্যকর। Ajax ব্যবহার করে আপনি পেজ রিফ্রেশ ছাড়াই ওয়েব পেজের ডেটা লোড বা আপডেট করতে পারেন, যা ইউজারের জন্য আরো ইন্টারঅ্যাকটিভ এবং দ্রুত অভিজ্ঞতা প্রদান করে।
এই টিউটোরিয়ালে, আমরা Tapestry ফ্রেমওয়ার্কে Ajax এবং JSON ব্যবহার করে কিভাবে ডাইনামিক ডেটা লোড করতে হয় তা দেখাব।
Tapestry Ajax ইন্টিগ্রেশনটি খুবই সহজ এবং এটি t:ajax কম্পোনেন্টের মাধ্যমে করা হয়। আপনি Ajax ব্যবহার করে যেকোনো UI উপাদান (যেমন, টেক্সটফিল্ড, বাটন, ড্রপডাউন) এর সাথে ইন্টারঅ্যাকশন করতে পারেন এবং পেজ রিফ্রেশ ছাড়াই ডেটা আপডেট করতে পারেন।
ধরা যাক, আমরা একটি dropdown menu তৈরি করতে চাই, যার মধ্যে একটি list of cities থাকবে এবং ব্যবহারকারী যখন একটি শহর নির্বাচন করবে, তখন তার সাথে সম্পর্কিত information Ajax এর মাধ্যমে পেজ রিফ্রেশ ছাড়াই আপডেট হবে।
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>City Selector</title>
</head>
<body>
<h2>Select a City</h2>
<t:form>
<t:label value="City" for="citySelect"/>
<t:select t:id="citySelect" value="selectedCity">
<t:option value="New York">New York</t:option>
<t:option value="London">London</t:option>
<t:option value="Paris">Paris</t:option>
</t:select>
<t:ajax event="change" listener="onCitySelected" update="cityInfo" />
</t:form>
<div id="cityInfo">
<!-- City information will be loaded here dynamically -->
</div>
</body>
</html>
এখানে:
এখন, আমরা Java ক্লাসে একটি Ajax Listener তৈরি করব, যা ড্রপডাউন থেকে শহর নির্বাচন করার পরে সিটি সম্পর্কিত তথ্য ফেরত দেবে।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.ActivationEventLink;
import org.apache.tapestry5.json.JSONObject;
public class CitySelector {
@Property
private String selectedCity;
// City information to be displayed after selecting a city
public JSONObject onCitySelected() {
JSONObject cityData = new JSONObject();
if ("New York".equals(selectedCity)) {
cityData.put("info", "New York is known as the Big Apple.");
} else if ("London".equals(selectedCity)) {
cityData.put("info", "London is known for its iconic landmarks.");
} else if ("Paris".equals(selectedCity)) {
cityData.put("info", "Paris is the city of light.");
} else {
cityData.put("info", "Please select a city.");
}
return cityData; // Return the city data as JSON
}
}
এখানে:
t:select
কম্পোনেন্টের সাথে ব্যাক-বাইন্ড করা হয়।info
নামক কী এর মানটি শহরের তথ্য হিসেবে আপডেট হয়।Tapestry তে Ajax এবং JSON ব্যবহার করে ডাইনামিক ডেটা লোড করা খুবই সহজ। t:ajax কম্পোনেন্টের মাধ্যমে আপনি ইন্টারঅ্যাকটিভ ফর্ম তৈরি করতে পারেন এবং Ajax কলের মাধ্যমে JSON ডেটা লোড করে তা পেজে রিফ্রেশ ছাড়াই আপডেট করতে পারেন। এটি ব্যবহারকারীর অভিজ্ঞতা উন্নত করে এবং অ্যাপ্লিকেশনকে দ্রুত এবং ইন্টারঅ্যাকটিভ করে তোলে।